<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>IDA SDK: source_item_t Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">IDA SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="files.html"><span>Header&#160;Files</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classsource__item__t-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">source_item_t Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__dbg__funcs.html">Debugger functions</a> &raquo; <a class="el" href="group__dbg__funcs__srcinfo.html">Source information providers</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Describes a subdivision of source information. </p>
</div>
<p>Inherits <a class="el" href="classqrefcnt__obj__t.html">qrefcnt_obj_t</a>.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac4d949c9f53d0b02c493b87c3b2c7506"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4d949c9f53d0b02c493b87c3b2c7506"></a>
virtual void <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#ac4d949c9f53d0b02c493b87c3b2c7506">release</a> ()=0</td></tr>
<tr class="memdesc:ac4d949c9f53d0b02c493b87c3b2c7506"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call this function to free <a class="el" href="classsource__item__t.html" title="Describes a subdivision of source information. ">source_item_t</a>. <br /></td></tr>
<tr class="separator:ac4d949c9f53d0b02c493b87c3b2c7506"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35c80f5af1582bdbbb4e0f50dab3dff4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35c80f5af1582bdbbb4e0f50dab3dff4"></a>
virtual <a class="el" href="group__dbg__funcs__srcinfo.html#ga3a88865b1c3ef359dea9675b081896ab">source_file_iterator</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a35c80f5af1582bdbbb4e0f50dab3dff4">get_source_files</a> ()=0</td></tr>
<tr class="memdesc:a35c80f5af1582bdbbb4e0f50dab3dff4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get source files of the item. <br /></td></tr>
<tr class="separator:a35c80f5af1582bdbbb4e0f50dab3dff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9262bd6aca65cbea30d576ef942d86b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9262bd6aca65cbea30d576ef942d86b3"></a>
virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a9262bd6aca65cbea30d576ef942d86b3">get_name</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *buf) const  =0</td></tr>
<tr class="memdesc:a9262bd6aca65cbea30d576ef942d86b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get name of the item. <br /></td></tr>
<tr class="separator:a9262bd6aca65cbea30d576ef942d86b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb081e8c25db36b921b4183895ed7bfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb081e8c25db36b921b4183895ed7bfe"></a>
virtual int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#acb081e8c25db36b921b4183895ed7bfe">get_lnnum</a> () const  =0</td></tr>
<tr class="memdesc:acb081e8c25db36b921b4183895ed7bfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get line number of the item (1-based) <br /></td></tr>
<tr class="separator:acb081e8c25db36b921b4183895ed7bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79e113dfeda110aa630e0cc91db8264b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79e113dfeda110aa630e0cc91db8264b"></a>
virtual int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a79e113dfeda110aa630e0cc91db8264b">get_end_lnnum</a> () const  =0</td></tr>
<tr class="memdesc:a79e113dfeda110aa630e0cc91db8264b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get ending line number (1-based.) The returned line number is the next line after the expression. <br /></td></tr>
<tr class="separator:a79e113dfeda110aa630e0cc91db8264b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54b89f857ecd6af9cfa2b472a56753e7"><td class="memItemLeft" align="right" valign="top">virtual int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a54b89f857ecd6af9cfa2b472a56753e7">get_colnum</a> () const  =0</td></tr>
<tr class="memdesc:a54b89f857ecd6af9cfa2b472a56753e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get column number of the item.  <a href="#a54b89f857ecd6af9cfa2b472a56753e7">More...</a><br /></td></tr>
<tr class="separator:a54b89f857ecd6af9cfa2b472a56753e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a331e7420b90ffd7d0794077af9c7969b"><td class="memItemLeft" align="right" valign="top">virtual int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a331e7420b90ffd7d0794077af9c7969b">get_end_colnum</a> () const  =0</td></tr>
<tr class="memdesc:a331e7420b90ffd7d0794077af9c7969b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get ending column number.  <a href="#a331e7420b90ffd7d0794077af9c7969b">More...</a><br /></td></tr>
<tr class="separator:a331e7420b90ffd7d0794077af9c7969b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa411c52e182320722e4a26a3cabede5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa411c52e182320722e4a26a3cabede5e"></a>
virtual <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#aa411c52e182320722e4a26a3cabede5e">get_ea</a> () const  =0</td></tr>
<tr class="memdesc:aa411c52e182320722e4a26a3cabede5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get starting address of the item. <br /></td></tr>
<tr class="separator:aa411c52e182320722e4a26a3cabede5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19da52e29bae99c7abbfdbcc8ebeb65a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a19da52e29bae99c7abbfdbcc8ebeb65a">get_size</a> () const  =0</td></tr>
<tr class="memdesc:a19da52e29bae99c7abbfdbcc8ebeb65a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get size of the item in bytes.  <a href="#a19da52e29bae99c7abbfdbcc8ebeb65a">More...</a><br /></td></tr>
<tr class="separator:a19da52e29bae99c7abbfdbcc8ebeb65a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3300488d102d381a541567e75c994fe8"><td class="memItemLeft" align="right" valign="top">virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a3300488d102d381a541567e75c994fe8">get_item_bounds</a> (rangeset_t *set) const  =0</td></tr>
<tr class="memdesc:a3300488d102d381a541567e75c994fe8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get item boundaries as a set of ranges.  <a href="#a3300488d102d381a541567e75c994fe8">More...</a><br /></td></tr>
<tr class="separator:a3300488d102d381a541567e75c994fe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a701f02085ac4cd0e8d9d036b2d0ec578"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__dbg__funcs__srcinfo.html#ga3c73aaf1eda8ff72a5a78ea13840afa5">source_item_ptr</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a701f02085ac4cd0e8d9d036b2d0ec578">get_parent</a> (<a class="el" href="group__dbg__funcs__srcinfo.html#gadd1590e46b67c1fbc2820300b894596f">src_item_kind_t</a> max_kind) const  =0</td></tr>
<tr class="memdesc:a701f02085ac4cd0e8d9d036b2d0ec578"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get parent of the item.  <a href="#a701f02085ac4cd0e8d9d036b2d0ec578">More...</a><br /></td></tr>
<tr class="separator:a701f02085ac4cd0e8d9d036b2d0ec578"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd340b3b34a30bfd7336f66506a3d55b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd340b3b34a30bfd7336f66506a3d55b"></a>
virtual <a class="el" href="group__dbg__funcs__srcinfo.html#gafdf5f52760e4ac48addc8b82986f6a8e">source_item_iterator</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#abd340b3b34a30bfd7336f66506a3d55b">create_children_iterator</a> ()=0</td></tr>
<tr class="memdesc:abd340b3b34a30bfd7336f66506a3d55b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an iterator to enumerate all children of the item. <br /></td></tr>
<tr class="separator:abd340b3b34a30bfd7336f66506a3d55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72ac4e221e95052f9504746c248bdc2c"><td class="memItemLeft" align="right" valign="top">virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a72ac4e221e95052f9504746c248bdc2c">get_hint</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *hint, const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *ctx, int *nlines) const  =0</td></tr>
<tr class="memdesc:a72ac4e221e95052f9504746c248bdc2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate a string to display as a hint.  <a href="#a72ac4e221e95052f9504746c248bdc2c">More...</a><br /></td></tr>
<tr class="separator:a72ac4e221e95052f9504746c248bdc2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5094338d48f17966096aba6a9b6fa13"><td class="memItemLeft" align="right" valign="top">virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#aa5094338d48f17966096aba6a9b6fa13">evaluate</a> (const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *ctx, <a class="el" href="classidc__value__t.html">idc_value_t</a> *res, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf) const  =0</td></tr>
<tr class="memdesc:aa5094338d48f17966096aba6a9b6fa13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate item value (meaningful only for expression items).  <a href="#aa5094338d48f17966096aba6a9b6fa13">More...</a><br /></td></tr>
<tr class="separator:aa5094338d48f17966096aba6a9b6fa13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b06eeee66df13635ab5b33aea32a171"><td class="memItemLeft" align="right" valign="top">virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a8b06eeee66df13635ab5b33aea32a171">equals</a> (const <a class="el" href="classsource__item__t.html">source_item_t</a> *other) const  =0</td></tr>
<tr class="memdesc:a8b06eeee66df13635ab5b33aea32a171"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do these two items have the same source?.  <a href="#a8b06eeee66df13635ab5b33aea32a171">More...</a><br /></td></tr>
<tr class="separator:a8b06eeee66df13635ab5b33aea32a171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Getters (for modification)</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>The following functions can be used to extract the item information in order to modify it.</p>
<p>For example, if the user wants to modify a variable we will find what exactly needs to be modified. </p>
</div></td></tr>
<tr class="memitem:a84e9e581b16c9d0e1ab1d568873468a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a84e9e581b16c9d0e1ab1d568873468a3"></a>
virtual <a class="el" href="group__dbg__funcs__srcinfo.html#gadd1590e46b67c1fbc2820300b894596f">src_item_kind_t</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a84e9e581b16c9d0e1ab1d568873468a3">get_item_kind</a> (const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *) const </td></tr>
<tr class="memdesc:a84e9e581b16c9d0e1ab1d568873468a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get item kind. <br /></td></tr>
<tr class="separator:a84e9e581b16c9d0e1ab1d568873468a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ac7bed742bf874c18266aba65f1b068"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ac7bed742bf874c18266aba65f1b068"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a7ac7bed742bf874c18266aba65f1b068">is_stmt</a> (const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *ctx) const </td></tr>
<tr class="memdesc:a7ac7bed742bf874c18266aba65f1b068"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does this source item represent a statement? <br /></td></tr>
<tr class="separator:a7ac7bed742bf874c18266aba65f1b068"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31f11f0db54d21a1d49d71645d8d3991"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a31f11f0db54d21a1d49d71645d8d3991"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a31f11f0db54d21a1d49d71645d8d3991">is_module</a> (const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *ctx) const </td></tr>
<tr class="memdesc:a31f11f0db54d21a1d49d71645d8d3991"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does this source item represent a module? <br /></td></tr>
<tr class="separator:a31f11f0db54d21a1d49d71645d8d3991"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15bfd641cd754dfa43f520dd60ff9fb6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15bfd641cd754dfa43f520dd60ff9fb6"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a15bfd641cd754dfa43f520dd60ff9fb6">is_func</a> (const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *ctx) const </td></tr>
<tr class="memdesc:a15bfd641cd754dfa43f520dd60ff9fb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does this source item represent a function? <br /></td></tr>
<tr class="separator:a15bfd641cd754dfa43f520dd60ff9fb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a173f6a2bc5b3634818649ebfd95ad8d8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a173f6a2bc5b3634818649ebfd95ad8d8"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a173f6a2bc5b3634818649ebfd95ad8d8">is_expr</a> (const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *ctx) const </td></tr>
<tr class="memdesc:a173f6a2bc5b3634818649ebfd95ad8d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does this source item represent an expression? <br /></td></tr>
<tr class="separator:a173f6a2bc5b3634818649ebfd95ad8d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf8eb9318941e425376ba83b919a8090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf8eb9318941e425376ba83b919a8090"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#aaf8eb9318941e425376ba83b919a8090">is_locvar</a> (const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *ctx) const </td></tr>
<tr class="memdesc:aaf8eb9318941e425376ba83b919a8090"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does this source item represent a stack, register, or register-relative local variable or parameter? <br /></td></tr>
<tr class="separator:aaf8eb9318941e425376ba83b919a8090"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97c8687d828031f9d4bfd08a1e3143f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97c8687d828031f9d4bfd08a1e3143f9"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a97c8687d828031f9d4bfd08a1e3143f9">is_sttvar</a> (const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *ctx) const </td></tr>
<tr class="memdesc:a97c8687d828031f9d4bfd08a1e3143f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does this source item represent a static variable or code? <br /></td></tr>
<tr class="separator:a97c8687d828031f9d4bfd08a1e3143f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74e3643be69e7b1798c3d37c7c11f04f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classsrcinfo__provider__t.html">srcinfo_provider_t</a> *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a74e3643be69e7b1798c3d37c7c11f04f">get_provider</a> (void) const  =0</td></tr>
<tr class="memdesc:a74e3643be69e7b1798c3d37c7c11f04f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get source info provider.  <a href="#a74e3643be69e7b1798c3d37c7c11f04f">More...</a><br /></td></tr>
<tr class="separator:a74e3643be69e7b1798c3d37c7c11f04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0759eb9adb2bdf3f4a90e15ef444477"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0759eb9adb2bdf3f4a90e15ef444477"></a>
virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#aa0759eb9adb2bdf3f4a90e15ef444477">get_location</a> (<a class="el" href="classargloc__t.html">argloc_t</a> *, const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *) const </td></tr>
<tr class="memdesc:aa0759eb9adb2bdf3f4a90e15ef444477"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the location for this source item. <br /></td></tr>
<tr class="separator:aa0759eb9adb2bdf3f4a90e15ef444477"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e4fb1e35c74fb69cfbbb7fd7ac2d31b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e4fb1e35c74fb69cfbbb7fd7ac2d31b"></a>
virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsource__item__t.html#a7e4fb1e35c74fb69cfbbb7fd7ac2d31b">get_expr_tinfo</a> (<a class="el" href="classtinfo__t.html">tinfo_t</a> *tif) const  =0</td></tr>
<tr class="memdesc:a7e4fb1e35c74fb69cfbbb7fd7ac2d31b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get expression type. <br /></td></tr>
<tr class="separator:a7e4fb1e35c74fb69cfbbb7fd7ac2d31b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classqrefcnt__obj__t"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classqrefcnt__obj__t')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classqrefcnt__obj__t.html">qrefcnt_obj_t</a></td></tr>
<tr class="memitem:abca79ba34587bd7253077569aee4d137 inherit pub_methods_classqrefcnt__obj__t"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abca79ba34587bd7253077569aee4d137"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqrefcnt__obj__t.html#abca79ba34587bd7253077569aee4d137">qrefcnt_obj_t</a> (void)</td></tr>
<tr class="memdesc:abca79ba34587bd7253077569aee4d137 inherit pub_methods_classqrefcnt__obj__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:abca79ba34587bd7253077569aee4d137 inherit pub_methods_classqrefcnt__obj__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_attribs_classqrefcnt__obj__t"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classqrefcnt__obj__t')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classqrefcnt__obj__t.html">qrefcnt_obj_t</a></td></tr>
<tr class="memitem:ab8d5e88bdc5903c5d918b6150c57f454 inherit pub_attribs_classqrefcnt__obj__t"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8d5e88bdc5903c5d918b6150c57f454"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqrefcnt__obj__t.html#ab8d5e88bdc5903c5d918b6150c57f454">refcnt</a></td></tr>
<tr class="memdesc:ab8d5e88bdc5903c5d918b6150c57f454 inherit pub_attribs_classqrefcnt__obj__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">counter <br /></td></tr>
<tr class="separator:ab8d5e88bdc5903c5d918b6150c57f454 inherit pub_attribs_classqrefcnt__obj__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a54b89f857ecd6af9cfa2b472a56753e7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> source_item_t::get_colnum </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get column number of the item. </p>
<p>If unknown, return -1 </p>

</div>
</div>
<a class="anchor" id="a331e7420b90ffd7d0794077af9c7969b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> source_item_t::get_end_colnum </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get ending column number. </p>
<p>The returned column number is the next column after the expression. If unknown, return -1 </p>

</div>
</div>
<a class="anchor" id="a19da52e29bae99c7abbfdbcc8ebeb65a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> source_item_t::get_size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get size of the item in bytes. </p>
<p>If the item is fragmented, return size of the main fragment. if unknown, return 0. On error, return (asize_t) -1. </p>

</div>
</div>
<a class="anchor" id="a3300488d102d381a541567e75c994fe8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> source_item_t::get_item_bounds </td>
          <td>(</td>
          <td class="paramtype">rangeset_t *&#160;</td>
          <td class="paramname"><em>set</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get item boundaries as a set of ranges. </p>
<p>This function will be used to determine what breakpoints to set for stepping into/stepping over the item. </p>

</div>
</div>
<a class="anchor" id="a701f02085ac4cd0e8d9d036b2d0ec578"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__dbg__funcs__srcinfo.html#ga3c73aaf1eda8ff72a5a78ea13840afa5">source_item_ptr</a> <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> source_item_t::get_parent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__dbg__funcs__srcinfo.html#gadd1590e46b67c1fbc2820300b894596f">src_item_kind_t</a>&#160;</td>
          <td class="paramname"><em>max_kind</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get parent of the item. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">max_kind</td><td>maximal source item kind we are interested in. for example, if max_kinds==<a class="el" href="group__dbg__funcs__srcinfo.html#ggadd1590e46b67c1fbc2820300b894596faaeceec779eabbd5638ff5ef4cf2e7b13" title="a statement (if/while/for...) ">SRCIT_STMT</a>, we are not interested in expressions, only in the enclosing statement or function </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a72ac4e221e95052f9504746c248bdc2c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> source_item_t::get_hint </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>hint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>nlines</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculate a string to display as a hint. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hint</td><td>output buffer for the hint (may by multiline &amp; with colors) </td></tr>
    <tr><td class="paramname">ctx</td><td>execution context. NULL means missing context. </td></tr>
    <tr><td class="paramname">nlines</td><td>number of important lines in the hint </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa5094338d48f17966096aba6a9b6fa13"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> source_item_t::evaluate </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classeval__ctx__t.html">eval_ctx_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classidc__value__t.html">idc_value_t</a> *&#160;</td>
          <td class="paramname"><em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>errbuf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Evaluate item value (meaningful only for expression items). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>execution context. NULL means missing context. </td></tr>
    <tr><td class="paramname">res</td><td>buffer for the result (or exception if evaluation failed) </td></tr>
    <tr><td class="paramname">errbuf</td><td>buffer for the error message </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8b06eeee66df13635ab5b33aea32a171"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> source_item_t::equals </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsource__item__t.html">source_item_t</a> *&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Do these two items have the same source?. </p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">false</td><td>the source of the underlying data differs between the two items. </td></tr>
    <tr><td class="paramname">true</td><td>when either the source of the underlying data is the same for the two items, or when such information is not available.</td></tr>
  </table>
  </dd>
</dl>
<p>E.g., A DWARF implementation of <a class="el" href="classsource__item__t.html" title="Describes a subdivision of source information. ">source_item_t</a> will return true if the two items are backed by DIEs that have the same file offset. </p>

</div>
</div>
<a class="anchor" id="a74e3643be69e7b1798c3d37c7c11f04f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsrcinfo__provider__t.html">srcinfo_provider_t</a>* <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> source_item_t::get_provider </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get source info provider. </p>
<p>The instance shouldn't be freed or released after using </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="dbg_8hpp.html">dbg.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
